<template>

</template>

<script>

import eventHubs from 'common/eventHubs'
function isEmpty(obj) {
  if (obj != null && obj != undefined && obj != '' && !$.isEmptyObject(obj)) {
    return false
  }
  return true
}
export default {
  name: 'topoElementEvent',
  data() {
    return {
      graphView: null
    }
  },
  created() {
    const self = this;
    eventHubs.getEventHub().$on('topoGraphView', (topoGraphView) => {
      console.log('绑定bus拓扑图上的事件显示界面')
      self.graphView = topoGraphView;
      self.addMouseListener()
    });
  },
  methods: {
    addMouseListener() {
      const self = this;
      //bus拓扑图上的松开鼠标的点击事件
      let eventType = ht.Default.isTouchable ? 'touchend' : 'mouseup';
      self.graphView.getView().addEventListener(eventType, function(e) {
        e = e || window.event;
        let ele = self.graphView.getDataAt(e);
        if (!isEmpty(ele)) {
          self.$store.dispatch('setCurElementId', ele.getId())
          if (ele._attrObject != undefined && ele._attrObject != null) {
            self.$store.dispatch('setCurMapElement', ele._attrObject.data)
          }
        } else {
          self.$store.dispatch('setCurElementId', null)
          self.$store.dispatch('setCurMapElement', null)
        }

        if (!isEmpty(ele) && ht.Default.isDoubleClick(e)) {//双击操作
          if (ele instanceof ht.Node) {
            console.log(ele.getName() + ' is double clicked.')
            eventHubs.getEventHub().$emit("topoElementDetail", self.$store.state.topo.curMapElement);
          }
        }

      });
      //Interactor在交互过程会派发出事件
      //  应用较多的是在点击图元需要弹开对话框的情况，
      // 如果直接在HT封装的on*Clicked事件处理内直接调用弹出对话框之类操作，
      // 会影响HT后续的交互事件处理，所以交互事件内影响界面的功能，可选择监听在mouseup和touchend里面处理
      // self.graphView.addInteractorListener(function(e) {
      //   if (e.kind === 'clickData') {
      //     console.log(e.data + '被单击');
      //   }
      //   else if (e.kind === 'doubleClickData') {
      //     console.log(e.data + '被双击');
      //   }
      //   else if (e.kind === 'clickBackground') {
      //     console.log('单击背景');
      //   }
      //   else if (e.kind === 'doubleClickBackground') {
      //     console.log('双击背景');
      //   }
      //   else if (e.kind === 'beginRectSelect') {
      //     console.log('开始框选图元');
      //   }
      //   else if (e.kind === 'betweenRectSelect') {
      //     console.log('正在框选图元');
      //   }
      //   else if (e.kind === 'endRectSelect') {
      //     console.log('结束框选图元');
      //   }
      //   else if (e.kind === 'beginMove') {
      //     console.log('开始移动图元');
      //   }
      //   else if (e.kind === 'betweenMove') {
      //     console.log('正在移动图元');
      //   }
      //   else if (e.kind === 'endMove') {
      //     console.log('结束移动图元');
      //   }
      //   else if (e.kind === 'beginPan') {
      //     console.log('开始手抓图平移');
      //   }
      //   else if (e.kind === 'betweenPan') {
      //     console.log('正在手抓图平移');
      //   }
      //   else if (e.kind === 'endPan') {
      //     console.log('结束手抓图平移');
      //   }
      //   else if (e.kind === 'beginEditRect') {
      //     console.log('开始编辑图元大小和位置');
      //   }
      //   else if (e.kind === 'betweenEditRect') {
      //     console.log('正在编辑图元大小和位置');
      //   }
      //   else if (e.kind === 'endEditRect') {
      //     console.log('结束编辑图元大小和位置');
      //   }
      //   else if (e.kind === 'beginEditPoint') {
      //     console.log('开始编辑多边形Shape或多点Edge的points');
      //   }
      //   else if (e.kind === 'betweenEditPoint') {
      //     console.log('正在编辑多边形Shape或多点Edge的points');
      //   }
      //   else if (e.kind === 'endEditPoint') {
      //     console.log('结束编辑多边形Shape或多点Edge的points');
      //   }
      //   else if (e.kind === 'beginEditRotation') {
      //     console.log('开始旋转图元');
      //   }
      //   else if (e.kind === 'betweenEditRotation') {
      //     console.log('正在旋转图元');
      //   }
      //   else if (e.kind === 'endEditRotation') {
      //     console.log('结束旋转图元');
      //   }
      //   else if (e.kind === 'moveLeft') {
      //     console.log('左方向键左移图元一个像素');
      //   }
      //   else if (e.kind === 'moveRight') {
      //     console.log('右方向键右移图元一个像素');
      //   }
      //   else if (e.kind === 'moveUp') {
      //     console.log('上方向键上移图元一个像素');
      //   }
      //   else if (e.kind === 'moveDown') {
      //     console.log('下方向键下移图元一个像素');
      //   }
      //   else if (e.kind === 'toggleNote') {
      //     console.log('切换node标注的展开合并');
      //   }
      //   else if (e.kind === 'toggleNote2') {
      //     console.log('切换node2标注的展开合并');
      //   }
      // })
    }
  }
}
</script>
